package com.lanchetech.admin.service;

import com.lanchetech.bean.request.BlindBoxPrizeReq;
import com.lanchetech.bean.vo.BlindBoxPrizeVo;
import com.lanchetech.bean.vo.BlindBoxVo;
import com.lanchetech.bean.request.BlindBoxReq;
import com.lanchetech.bean.response.BasePageResp;
import com.lanchetech.bean.response.BaseResp;
import com.lanchetech.bean.response.ResultData;
import com.lanchetech.common.exception.ResultCodeException;
import com.lanchetech.entity.BlindBox;
import com.lanchetech.entity.BlindBoxPrize;

public interface BlindBoxService {
    BaseResp editBlindBox(BlindBox blindBox) throws ResultCodeException;

    ResultData<BasePageResp<BlindBoxVo>> getBlindBoxList(BlindBoxReq blindBoxReq);

    BaseResp examine(Long id, Byte status) throws ResultCodeException;

    BaseResp whether(Long id, Boolean whether) throws ResultCodeException;

    BaseResp addPrize(BlindBoxPrize blindBoxPrize) throws ResultCodeException;

    BaseResp whetherOpenPrize(Long prizeId) throws ResultCodeException;

    ResultData<BasePageResp<BlindBoxPrizeVo>> getPrizes(BlindBoxPrizeReq blindBoxPrizeReq);

    void deleteBlindBoxById(Long id) throws ResultCodeException;
}
